package yl.hs.bmipfull.daos.system;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import yl.hs.bmipfull.daos.BaseDao;
import yl.hs.bmipfull.pojo.system.GlobalSearchItemEntity;

import java.util.List;
import java.util.Map;

/*
 * IGlobalSearchItemDao
 * @category
 * @author 谢景广
 * @date 2021-06-28
 */
@Repository
public interface IGlobalSearchItemDao extends BaseDao<GlobalSearchItemEntity> {

    /**
     * 根据搜索条件和分页信息查询制定页面的分页数据
     *
     * @param map 搜索条件和分页信息
     * @return 分页数据
     */
    List<GlobalSearchItemEntity> queryListByPageSearch(@Param("map") Map<String, Object> map);

    /**
     * 根据用户查询条件统计信息数量
     *
     * @param map 用户查询条件
     * @return 信息数量
     */
    Integer queryCountByPageSearch(@Param("map") Map<String, Object> map);

    /**
     * 根据数据代码获取数据设置项
     *
     * @param dataCode 数据代码
     * @param sn       标识
     * @return 全局搜索设置项
     */
    GlobalSearchItemEntity findItemByCode(String dataCode, String sn);

    /**
     * 根据数据代码获取数据设置项
     *
     * @param dataCode 数据代码
     * @return 全局搜索设置项
     */
    GlobalSearchItemEntity findItemByDataCode(String dataCode);

    /**
     * 根据数据代码集合获取搜索设置项
     *
     * @param codeList 数据代码集合
     * @return 搜索到的搜索设置项
     */
    List<GlobalSearchItemEntity> queryListByDataCodeList(List<String> codeList);

    /**
     * 根据设置项编号删除设置项
     *
     * @param snList 编号集合
     * @return 删除结果
     */
    Integer deleteBySNList(List<String> snList);

    /**
     * 获取所有全局搜索设置项
     *
     * @return 所有全局搜索设置项
     */
    List<GlobalSearchItemEntity> queryAllItems();

    /**
     * 根据用户编号获取用户有权搜索的设置项
     *
     * @param userSN 用户编号
     * @return 有权搜索的设置项集合
     */
    List<GlobalSearchItemEntity> queryListByUserSN(String userSN);
}
